﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Woobao.VO;

namespace Woobao.DAO
{
   public class JogoDAO
    {
       TBJogo ConverterParaBanco(VOJogo vo)
       {
           TBJogo tb = new TBJogo();
           tb.IDJogo = vo.Codigo;
           tb.IDCampeonato = vo.CodigoCampeonato;
           tb.IDFase = vo.CodigoFase;
           tb.IDParticipanteUm = vo.CodigoParticipanteUm;
           tb.IDParticipanteDois = vo.CodigoParticipanteDois;
           tb.GolsParticipanteUm = vo.GolsParticipanteUm;
           tb.GolsParticipanteDois = vo.GolsParticipanteDois;
           tb.NRJogo = vo.NRJogo;

           return tb;
       }
       VOJogo ConverterParaVO(TBJogo tb)
       {
           VOJogo vo = new VOJogo();

           vo.Codigo = tb.IDJogo;
           vo.CodigoCampeonato = tb.IDCampeonato;
           vo.CodigoFase = tb.IDFase;
           vo.CodigoParticipanteUm = tb.IDParticipanteUm;
           vo.CodigoParticipanteDois = tb.IDParticipanteDois;
           vo.GolsParticipanteUm = tb.GolsParticipanteUm;
           vo.GolsParticipanteDois = tb.GolsParticipanteDois;
           vo.NRJogo = tb.NRJogo;

           return vo;

       }

       public void inserir(VOJogo obj)
       {
           TBJogo jog = ConverterParaBanco(obj);
           {
           using(DBWoobaoEntities banco = new DBWoobaoEntities())
	{
		 banco.TBJogoes.Add(jog);
         banco.SaveChanges();
	}
           }
       
       }

       public List<VOJogo> Consultar(VOJogo filtro)
       {
           using (DBWoobaoEntities banco = new DBWoobaoEntities())
           {
               var query = from u in banco.TBJogoes
                           where
                           (u.IDCampeonato == filtro.CodigoCampeonato || filtro.CodigoCampeonato == 0)
                           select u;
               List<TBJogo> lista = query.ToList();
               List<VOJogo> listaRetorno = new List<VOJogo>();
               foreach (var item in lista)
               {
                   listaRetorno.Add(ConverterParaVO(item));
               }
               return listaRetorno;
           }
       
       }

       public void Atualizar(VOJogo obj)
       { 
           using(DBWoobaoEntities banco = new DBWoobaoEntities())
	{
        TBJogo jogo = banco.TBJogoes.Where(q => q.IDJogo == obj.Codigo).Single();
        jogo.GolsParticipanteUm = obj.GolsParticipanteUm;
        jogo.GolsParticipanteDois = obj.GolsParticipanteDois;

        banco.SaveChanges();
	}
        
       }

    }
}
